✒️ 2025-05-15 15:53 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용을 정리
TCPSchool의 내용을 정리
- C에선 파일을 byte별로 따로 읽을 수 있는 연속적인 byte의 집합으로 취급한다.
- 바이너리 파일(binary file) : 데이터의 저장과 처리 목적으로 0과 1의 이진 형식으로 인코딩된 파일이다.
- 텍스트 파일(text file) : 사람이 알아볼 수 있는 문자열로 이루어진 파일이다.
- C에서 콘솔 장치에 대한 스트림은 프로그램 실행 시 자동으로 생성되고, 프로그램 종료 시 자동으로 소멸된다.
- 하지만 파일의 경우엔 파일 연결 스트림은 사용자가 직접 생성하고 소멸시켜야 한다.
파일 입출력 함수
fopen() : 파일을 열어주는 함수로, 파일 입출력 스트림을 생성한다.
- 첫 번째 인수 : 열려는 파일의 경로를 포함한 이름
- 두 번째 인수 : 파일을 열 때 사용할 모드
- 프로그램이 성공적으로 파일을 열면
fopen()은 FILE 구조체 변수의 포인터를 반환하고, 실패하면 Null 포인터를 반환한다.
#include <stdio.h>
FILE *fopen(const char * restrict filename, const char * restrict mode);
| 사용 용도 지정 문자 |
설명 |
r |
읽기 모드 |
w |
쓰기 모드 |
a |
추가 모드 |
| 데이터 형식 지정 문자 |
설명 |
x |
열려는 파일이 이미 존재하면 파일을 열지 못함 |
+ |
파일을 읽을 수도, 쓸 수도 있음 |
| 파일 데이터 형식 문자 |
설명 |
b |
해당 파일 데이터를 바이너리로 인식하고 입출력함 |
t |
해당 파일의 데이터를 텍스트로 인식하고 입출력함 |
fclose() : 파일을 닫아주는 함수로, 파일과의 입출력을 위해 생성한 스트림을 소멸 시킨다.
- 버퍼에 남아있는 데이터를 파일로 완전히 내보내고, FILE 구조체를 해제한다.
- 다 사용한 파일은 반드시
fclose()로 닫아줘야 한다.
- 파일을 성공적으로 닫으면 0을 반환하고, 실패하면
EOF를 반환한다.
#include <stdio.h>
int fclose(FILE *stream);
-
fgetc(), fputc(), fgets(), fputs()는 파일과 문자 또는 문자열을 입출력할 때 사용하는 함수다.
-
fscanf() : 지정된 스트림으로부터 다양한 서식 변환 문자를 이용하여 문자열을 읽는 함수다.
- 첫 번째 인수 : 스트림을 결정할 FILE 구조체 변수의 포인터
- 두 번째 인수 : 읽어들일 문자열의 서식
- 함수는 읽기에 성공하면 읽어 들인 변수의 개수를 반환하고, 실패하면
EOF를 반환한다.
#include <stdio.h>
int fscanf(FILE * restrict stream, const char * restrict format, ...);
fprintf() : 지정된 스트림에 다양한 서식 변환 문자를 이용하여 문자열을 출력(저장)하는 함수다.
- 첫 번재 인수 : 스트림을 결정할 FILE 구조체 변수의 포인터
- 두 번째 인수 : 출력할 문자열의 서식
- 함수는 쓰기(저장)에 성공하면 저장한 문자열의 크기를 byte 단위로 반환하고, 실패하면 음수를 반환한다.
#incldue <stdio.h>
int fprintf(FILE * restrict stream, const char * restrict format, ...);